
#include <QStandardItemModel>
#include <QStandardItem>
#include <QApplication>

#include "cxiadvancedview.h"
#include <QVBoxLayout>

int main(int argc, char* argv[])
{
    QApplication a(argc, argv);
    QWidget widget;
    CxiAdvancedView view(&widget);
    QStandardItemModel model;
    model.setColumnCount(3);
    model.setHorizontalHeaderLabels(QStringList() << "ID" << "Name" << "Score");

    // 设置8列表头
    QStringList headers;
    headers << "序号" << "来源" << "检查状态" << "检查类型" << "患者编号" << "姓名" << "性别" << "科室" << "医生" << "年龄";
    model.setHorizontalHeaderLabels(headers);

    // 添加数据
    for (int i = 0; i < 15; ++i) {  // 15条数据
        QList<QStandardItem*> rowItems;
        rowItems << new QStandardItem(QString::number(i + 1))  // 序号
                 << new QStandardItem(i % 3 == 0 ? "线上" : (i % 3 == 1 ? "线下" : "转诊"))  // 来源
                 << new QStandardItem(i % 4 == 0 ? "已完成" : (i % 4 == 1 ? "进行中" : (i % 4 == 2 ? "待检查" : "取消")))  // 检查状态
                 << new QStandardItem(i % 3 == 0 ? "常规检查" : (i % 3 == 1 ? "特殊检查" : "急诊检查"))  // 检查类型
                 << new QStandardItem(QString("P%1").arg(1000 + i))  // 患者编号
                 << new QStandardItem(QString("患者%1").arg(i + 1))  // 姓名
                 << new QStandardItem(i % 2 == 0 ? "男" : "女")  // 性别
                 << new QStandardItem(i % 4 == 0 ? "内科" : (i % 4 == 1 ? "外科" : (i % 4 == 2 ? "骨科" : "儿科")))  // 科室
                 << new QStandardItem(QString("医生%1").arg(char('A' + i % 5)))  // 医生
                 << new QStandardItem(QString::number(20 + i));  // 年龄
        model.appendRow(rowItems);
    }

    QVBoxLayout *layout = new QVBoxLayout(&widget);
    layout->addWidget(&view);
    widget.setLayout(layout);
    view.setModel(&model);

    widget.resize(800,600);
    widget.show();
    return a.exec();
}
